<?php
$db = new PDO('mysql:host=127.0.0.1; dbname=db3', 'root', '12qwas');
$ps = $db->query('select * from students',PDO::FETCH_ASSOC); // PDO::FETCH_NUM
table($ps);
function table(PDOStatement $ps) {
    $cc=$ps->columnCount();//获取结果集列的个数
    if($cc===0)return;//如果是 0，说明结果集上不存在
    echo "<table border='1' cellspacing='0' cellpadding='6'><tr>";
    for ($i = 0; $i < $cc; ++$i) {//循环显示表头信息
        echo '<th>', $ps->getColumnMeta($i)['name'], '</th>';
    }
    echo "</tr>";
    foreach ($ps as $r) {//循环显示记录内容
        echo '<tr>';
        for ($i = 0; $i < $cc; ++$i) { //事先并不知道是按列号还是按列名才能取到数据
            echo '<td>', $r[$i]??$r[$ps->getColumnMeta($i)['name']], '</td>'; //列号取不到数据就用列名
        }
        echo '</tr>';
    }
    echo "</table>";
}
